/***************************************************************************
 *   Copyright (C) 2009 by Zheng Yonglei
 *   zhengyonglei@gmail.com   *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/


#ifndef TESTRECORD_H_
#define TESTRECORD_H_

#include <QDate>
#include <QString>

#include <vector>
#include <iostream>
using namespace std;

class TestRecord
{
public:
	TestRecord();
	TestRecord(QDate date, QString resultString);
	virtual ~TestRecord();

	int getInterval();
	void pass();
	void fail();

	bool passFirst();

	vector<bool>& getTestResultVector(){return mTestResultVector;}
	int getPassCount(){return mPassCount;}
	int getFailCount(){return mFailCount;}
	int getTestCount(){return mPassCount + mFailCount;}
	QString getTestRecordString(){return mTestRecordString;}

private:
	QString encodeTestRecord();
	void decodeTestRecord();

private:
	QDate mTestDate;
	vector<bool> mTestResultVector;

	QString mTestDateString; //the testing date
	QString mTestResultString; //the testing result, ie N2Y1
	QString mTestRecordString; //combing testing date and testing result

	int mPassCount;
	int mFailCount;
};

#endif /* TESTRECORD_H_ */
